.th MONITOR III 2/11/74
.sh NAME
monitor \*- prepare execution profile
.sh SYNOPSIS
.ft B
monitor(lowpc, highpc, buffer, bufsize)
.br
int lowpc( ), highpc( ), buffer[ ], bufsize;
.ft R
.sh DESCRIPTION
.it Monitor
is an interface to the system's profile entry (II).
.it Lowpc
and
.it highpc
are the names of two functions;
.it buffer
is the address of a (user supplied)
array of
.it bufsize
integers.
.it Monitor
arranges for the system to sample the user's
program counter periodically
and record the execution histogram in
the buffer.
The lowest address sampled
is that of
.it lowpc
and the highest is
just below
.it highpc.
For the results to be significant,
especially where there are small, heavily
used routines,
it is suggested that the buffer be no more
than a few times smaller than the range
of locations sampled.
.s3
To profile the entire program,
it is sufficient to use
.s3
	extern etext;
.br
	...
.br
	monitor(2, &etext, buf, bufsize);
.s3
.it Etext
is a loader-defined symbol which lies just above all the
program text.
.s3
To stop execution monitoring and write the results
on the file
.it mon.out,
use
.s3
	monitor(0);
.s3
Then, when the program exits, prof (I) can be used
to examine the results.
.s3
It is seldom necessary to call this routine
directly; the
.bd \*-p
option of
.it cc
is simpler if one is satisfied with
its default profile range and resolution.
.sh FILES
mon.out
.sh "SEE ALSO"
prof (I), profil (II), cc (I)
